home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
misc
/
prnf246.zip
/
MANGLER.DOC
< prev
next >
Wrap
Text File
|
1994-12-20
|
40KB
|
700 lines
_______MANGLER Ver. 2.61
Purpose: Reads an ASCII text file, performs various kinds of minor surgery
on it, paying due respect to bare carriage returns, and writes the
result into another file. Mangler can do a lot of different
things, but not all at once; you may want to run it several times
over the same text.
Format: MANGLER [infilespec [outfilespec] [/+|/-] [/REC] [xxxxxxx]]
None of these parameters are necessary. Mangler is designed to be
an interactive program, and whatever you don't specify on the com-
mand line will be asked for. If you want to run it from a batch
file, however, you can provide everything on the command line so
it doesn't have to stop and ask.
If you do put parameters on the command line, the first one must
specify the file Mangler is to read and process; if the second
parameter does not begin with a "/",[1] it's the file in which to
write the output. If you don't specify the second filename,
Mangler will construct one and offer it. The new file will have
the same date and time as the original. Notice that whatever
filespecs you want to give must precede any parameter that begins
with a slash.
/+ and /- instruct Mangler, respectively, to rerun or not rerun
itself automatically. Mangler is a program you may want to run
several times on the same text, so when it's finished, it normally
asks whether you want to run it again. To run Mangler from a
batch file without interaction, /+ or /- on the command line will
quash that request.
/REC makes MANGLER record your keystrokes. It helps you work out
what keyboard stuffing you need to make MANGLER work from a batch
file. There are too many possible combinations of commands to
list here, but set the /REC option and punch through the operation
you want to order from a batch file. File MANGLER.KEZ will then
have a record of the parameters you put on the command line plus
the keystrokes you entered during the run. With a little editing,
that's what you put into the batch file.
Any characters thereafter are treated as keyboard stuffing. The
point of the keyboard stuffing is to give you a chance to set up
automatic responses for a batch file. For the syntax of the key-
board stuffing characters, see page 8, below.
Remarks: After the files it's to work on are settled, you get to choose
from a menu bar. Either move the cursor bar and press <Enter> or
just press the first letter of the choice you want. If you make a
-----------
1. or "^M" or "#13" --see "Keyboard Stuffing", p. 8, below.
_______MANGLER 2.61 Page 2
mistake, you can (almost) always back up by pressing <Esc>. Here
are the choices and what they do:
_______ ______ ______ ______ _______ ______ _____ _______ ____ Mrg/Tab DelRep Hi-bit CrSwap Ln Ends SpFile InsFF Reverse Quit
_______ Mar\Tab gets you a sub-menu, with the following offerings:
__________ Add Margin: adds blanks to the beginning of each line. You're
asked how many.
You'll also be asked whether to insert blanks after CR's,
too. If the file contains bare CR's, you should answer
"Y" to keep the overprinting even with the main line.
It's made optional only to deal with freaks and blunders.
Finally, you're asked how to expand tabs. Setting tab
width to 0 makes Mangler leave tabs alone, but this is
unwise. Pushing the margins back and forth raises hob
with tabbed intervals.
Normally, it's better to add margins in Pagina, as part of
the basic page formation, or in Prn2Both if you're going
to print on both sides, but if you want your headers to
extend a little to the left of the text, you can add a few
columns of blank margin here, before you run Pagina.
_____________ Remove Margin: removes blanks and tabs at the beginning of
each line. It won't remove any other characters. Here,
too, you're asked how many, whether to do it after bare
CR's, and how to expand tabs.
You remove the margin to permit more flexible choices of
margin, alternating headers, &c. when you paginate, and
especially if you're going to use Prn2Both, which prefers
marginless text. If you don't know how much margin the
file has, ask CountPgs.
___________ Expand Tabs expands tab characters into a suitable number of
blanks. Default width is 8 columns.
______________ Tab the Spaces reverses the Expand procedure: packs blanks
into tabs. Saves a little file space; otherwise useless.
______ DelRep (delete/replace): removes every occurrence of a given char-
acter or string from the file, replacing them, if you like,
with something else. It was made to remove form-feed charac-
ters (ASCII #12), when you intend to re-paginate a file, but
you can work it on any characters you like. To remove a char-
acter or string of characters, replace it with nothing. If
you ask DelRep to replace a string with itself (same string
for "Replace what" and for "Replace it with what"), Mangler
_____ will merely count the occurences of the string, without making
any changes and without creating an output file at all.
_______MANGLER 2.61 Page 3
To tell Mangler what strings to use, you can enter most char-
acters in the normal way, but not things like the high-bit
graphics characters or the backspace character, ASCII 8. The
simplest way to enter them is to use the # sign followed by
the ASCII number (#8 for backspace), but you can also use the
caret representing "Control" to make Ctrl-Characters like ^M
for "Ctrl-M" (alias "carriage return", alias <Enter>). This
means, of course, that you can't enter a "#" or a "^" plain.
If you want to specify one of these characters, you must put a
backslash (\) in front of it (\# for the "#" character, \\ for
the backslash). See the section on "Keyboard Stuffing" on
page 8 for more about these symbols.
An example: one use for DelRep is converting Unix text files
to DOS. Unix separates lines with one line-feed character;
DOS does it with a pair: line-feed followed by a carriage
return. To convert Unix files to DOS, replace ^J with ^M^J.
To convert DOS files to Unix, replace ^M^J with ^J. I keep a
batch file for the purpose, containing the line:
mangler %1 /- ^Md"^J"^M"^M^J"^MYN
______ Hi-bit (High-bit filter): Produces a menu offering several ways to
deal with the "high-Bit" characters from ASCII #128 to ASCII
#255. Here are the options and what they do:
_____________ Strip Hi-Bits: is the usual cure for WordStar "documents".
Change characters above #127 to ordinary ones. It avoids
the mess that happens if you try to send 8-bit character
(ASCII 0 - 255) through a system that can handle only 7-
bit characters (below #128), but it ruins box character
___ graphics and generaly makes hash unless it really was a
WordStar document.
_____________ Dot the Highs: puts dots for all unprintables (Hi-bit chars
and most of the #0-#31 "command" chars), a less dangerous
way to avoid high-bit characters.
______________ Lower Box Char: replaces "graphics" box drawing characters
with plain "--", "|" etc. If your text has lines and
boxes drawn with the IBM/Epson "graphics" characters and
you want to print it or transmit it with a 7-bit device,
this option does a fair job of reproducing the design with
characters in the safe range below #128. This does
nothing to other high-range characters. You may want to
run this once to preserve the boxes, and then run "Dot the
Highs" to defang the others.
______________ Raise Box Char: replaces crude "--", "|" box characters with
hi-bit graphics ones. Just the reverse of the above. If
you have a text with lines and boxes drawn with the low-
range characters, this will pretty it up by converting to
the high-range graphics characters. Mangler makes an
effort to sort out ordinary hyphens and equal signs from
box lines by checking the context, but you may want to
_______MANGLER 2.61 Page 4
check it by hand. Look especially for places where a "-"
or a "=" might get treated like box characters. (In a
batch file, all the double equal signs, "==", will be
turned to graphics.) Sometimes, a run or two of Mangler's
DelRep will do the trick, or you may have to go in with an
editor. (But, make sure first, that your editor can
handle the high-range characters.)
NOTE: At present, the last two: Raise and Lower Box Char can't
handle bare CR's. Perhaps in a future version. . .
_______ CR Swap: to make sure a text with bare CR's is readable on the
screen, this function plays frontsy backsy around the first
bare CR (if there is one) in each line.
To explain: The DOS convention for text files marks the end of
a line with a CR followed by an LF (line feed, ASCII #10).
That's where you usually find CR's, but some files use CR's
_____________________ plain to make the printer back up and overprint with under-
______ scores or whatever for special effects. There's a difficulty,
though. When the file is viewed on the screen, as people are
likely to do with a DOC file, if the underscore line comes
after the text, it overprints and hides it. What you must do
_____ is put the underscores first, then the CR, and finally the
text. This way, the text overprints the underscores, and the
users see the text (but not the underscores).
This is why you need the CR Swap function. Most word process-
_____ ors that use the CR this way put the underscores after the
line of text. This will move them to the front.
_______ Ln Ends: gets you a short menu which offers the following:
______________ Soften Returns: Prepares an ASCII text for use in a word pro-
cessor. Most word processors distinguish between "hard"
returns which separate paragraphs and "soft" ones that in-
dicate line-ends. To a word processor, the ASCII CR/LF
pair for line ends looks like a hard return. This func-
tion does a fair job of guessing which of your ASCII line-
___ ends do not indicate paragraph breaks and replacing them
with whatever your word processor wants (you get to speci-
fy). Word Perfect 5.1 uses #13 (CR without LF), my old
FinalWord uses #255. If you don't know what yours uses,
try spaces (#32). You also get to specify whether to
count an indentation as a paragraph marker. Two warnings,
though:
1. Generally, Mangler takes an empty line to indicate the
end of a paragraph. But, it doesn't think a line con-
taining blanks is an empty one. If you're converting
a text that fills out lines with blanks (as a screen
print would), you may want to run the Bobtail Blanks
function below on a text before you soften the re-
turns.
_______MANGLER 2.61 Page 5
2. This method is crude. It will get your word-processor
to digest the text, but you may have to do a lot of
hand work afterwards to restore things like tables and
footnotes.
_____________ Pad Line Ends fills out the end of each line with blanks to a
specified minimum length. Sometimes useful to prevent an
over-helpful editor from re-formatting your text during an
ASCII upload.
______________ Bobtail Blanks strips blanks and tabs from the ends of lines.
______ SpFile (Split File): divides the file into several smaller ones.
Many editors cannot handle files larger than 64K bytes, so it
may be convenient to cut it into manageable pieces. You get
to say how big. (The default is 60K.) Mangler takes the
drive, path and filename of your outfilespec, ignores any ex-
tension, and uses consecutive numbers starting with 001 for
the extension. If you ask it to split C:\TXT\FOO.TXT into
D:\OUTFOO or D:\OUTFOO.XXX, Mangler will put the text into
D:\OUTFOO.001, D:\OUTFOO.002, etc. When you've finished, you
can reassemble them with the DOS command:
COPY D:\OUTFOO.* C:\TXT\FOO.DOC
Note: When the SpFile operation is done, Mangler will termin-
ate, regardless of /+ in the command line or any previous
request to "run another round".
_____ InsFF (Insure FF's): Allows you to rework the existing page breaks
and remove page headers and footers. At a minimum, it insures
that the file is paged with form-feed characters. It inserts
an FF every so many lines (unless it finds an FF first), de-
letes blank lines at the bottom of each page, and (like all
the Mangler functions) deletes blanks at the ends of lines.
This feature is intended for files which are paged with blank
lines instead of form-feeds. Such a file is committed to a
specific number of lines per page. Usually, they're laid out
for 8.5" x 11" paper at 66 lines per page. To print it small,
say 5.5" x 8.5", you can set the printer to use condensed type
(16 or 17 chars/inch) at 8 lines/inch vertically. That fits a
page laid out for normal paper into the right size to be cut
and punched for the small binders, but now its 66 line pages
don't come out even with the paper. The cure is: convert from
blank line paging to FF's. Hence, InsFF.
InsFF will also offer to insert extra FF's. If you intend to
print the file on two sides of the paper you may need a blank
page here and there to prevent things like printing the first
page of text on the back of the title page. (The easy way to
do this is to pull the text into an editor and insert FF's
where you want. Unfortunately, most editors --check yours--
bungle bare CR's. If yours does, you'll have to use Mangler
to insert extra FF's into a file that uses CR's for underlin-
_______MANGLER 2.61 Page 6
ing &c.) If you ask for several extras, don't get confused
about which page is which. InsFF doesn't count the extras as
it inserts them. So, if you call for extras after the 1st and
________ 4th pages, you'll get them after the original 1st and 4th. Of
course the first extra will become the second page of the new
file, and the second extra will be the new 6th page.
If you don't ask for extras, you're offered a chance to "clean
up the top of the page, too". If you decline, you're asked if
___ you want to remove any non-blank lines from headers or foot-
ers.[2] There's no harm in running InsFF over the same file
several times, once to add some extra FF's, say, and again to
clean up the tops or remove some header lines.
Ordinarily, if you need to run Mangler on a file already paged
with FF's, make sure the number of lines you ask for is at
___ least two greater than the number already on the longest page
in the file. That puts the page breaks are where they are in
the original and also makes sure Mangler won't insert unwanted
extras. Of course, if you don't like the original paging, you
can remove it by deleting the FF's (ASCII #12) with DelRep.
InsFF is useful with files badly laid out in various ways; for
instance, you can add headers or footers to a file that's al-
ready paged by running Mangler's InsFF, telling Mangler to in-
sert the FF's every 66 lines. If you know what the existing
headers & footers are, you can get Mangler to remove them en-
tirely or in part, and make room for yours. Removing footer
lines is sometimes tricky: Mangler can be confused if the
footer has blank lines after it. The cure is to run InsFF
plain, to clean out all the blank lines between the footer and
the end of page. Then run it again with instructions to re-
move the footer lines. Finally, run Pagina to install your
own headers. When you have the file properly mangled, Count-
Pgs will tell you whether the longest page has room for what
you want to insert. You may have to use {.HPnn} to enlarge
Pagina's 63 line per page default.
_______ If the file is totally unpaged, it's better to go at it with
Pagina in the first place.
-----------
2. You may have to run InsFF several times if you want to remove footer
lines. Mangler can't remove footer lines unless they're at the very
bottom of the page. To make sure there are no blank lines below the
_______ footer, it's wise to begin by running InsFF once without removing
footers.
_______MANGLER 2.61 Page 7
______ Revrse: Reverses the order of pages so the last page will be prin-
ted first. Under certain circumstances, sheet-feeder printers
may require this:
(a) If your printer stacks the pages print side up (like HP's
DeskJet), it will collate backwards. Reversing the order
of the pages before printing fixes it. (Backwards back-
wards is forwards.)
To print on both sides of the paper, use Prn2Both to split
the file into odd and even paged files. Print one, turn
the paper and print the other file on the back. On a con-
tinuous feed printer it's pretty intuitive, but sheet-
feeders are a tad more complicated. If the printer stacks
___ its output print side up, reverse the odd paged file but
not the even paged file. Print one file, turn the paper
around so it goes in head first, and print the other on
______ the back. (The new print is put on the bottom of the
paper as it lies in the feeder tray).
(b) If the printer does collate properly by stacking the out-
put print side down, you don't need to reverse anything.
To print on both sides, however, do the even pages first
and the odd pages on the back.
___ (c) I don't know of a printer that puts the print on top of
the paper as it comes in. If yours does, you'll have to
reverse the instructions above. More or less.
A word of warning: The Revrse function requires that the file
be correctly paginated with FF;s. It will drop all characters
after the last FF, and it will choke on a page with too many
characters between FF's. If you're not sure, CountPgs will
tell you all about the pagination. Pagina, of course, will
leave the text in the proper condition. If the file is al-
ready paginated, Mangler's InsFF function will insure that the
pages are marked with FF's.
____ Quit: Quits.
_______MANGLER 2.61 Page 8
About Keyboard Stuffing:
If you want to run Mangler from a batch file without having to en-
ter instructions from the keyboard at run-time, you have to sup-
ply, in advance, all the characters that will be required. The
rules go like this:
- The first parameter must be the name of the file to be read.
- If the 2nd parameter does not begin with a slash (/) or a
carriage return sign (^M or #13), it is the name of the file
to be written.
____ - If the 2nd parameter does begin with a slash or carriage re-
turn sign (that is: /REC or /+ or /- or ^M or #13), Mangler
uses its automatically generated output file name
(FILENAME.001, FILENAME.002, &c.).
- After the first two names or after any parameter that starts
___ with a slash, any parameter that does not begin with a
slash, in fact all the remaining characters will be stuffed
into a keyboard buffer. They'll be fed to Mangler just as
if you were entering them from the keyboard.
If you want to automate a run of Mangler, as you must if you want
to run it from a batch file, you have to put all the characters
you'd enter from the keyboard into that last parameter. That can
be awkward to work out. The easiest way is to use the /REC param-
eter and step Mangler through the operation by hand. File MANG-
LER.KEZ will then contain the command line you just used plus the
strokes you entered during the run. Make sure it was a clean run.
___ If you make mistakes and have to back up, all the keystrokes,
including the mistakes will show up in MANGLER.KEZ, with the up-
shot that both you and Mangler become confused.[3] It is possible
to correct such a file, but it's usually easier to write it from
scratch, or even better: just scrub the MANGLER.KEZ file and make
another run.
Sometimes, you can simply copy MANGLER.KEZ into your batch file
and use it as is, but you can edit it with any ASCII editor, and
sometimes you must. In some places, you need to enter something
like <Enter> or <Ctrl-Enter>. You can't just punch <Enter> (DOS
wouldn't put it in the string: it would simply obey it). There
are two conventions for representing control characters that Mang-
ler understands:
-----------
3. If you use the editing keys, you'll see some odd things. Backspace is
simply ^H, but all the cursor pad keys take two characters, the first of
which is always #0. Zero shows up as ^@, so you'll see things like ^@M
for left-arrow, ^@K for right-arrow and ^@S for delete.
_______MANGLER 2.61 Page 9
(a) Any character, including the control characters, can be indic-
ated by its ASCII number preceded by # (#13 means CR <Enter>
#10 means LF <Ctrl-Enter>, #92 means "\", etc).
(b) Control characters (#0 through #31) can also be indicated by
the caret-with-capital-letter convention. ^A (pronounced
"Control-A") indicates character #1, ^B means #2, etc. Thus,
^M (the 13th letter) indic ates #13 or <Enter>. ^J makes
<Control-Enter> (or ASCII 10).
Don't put spaces in these sequences unless you would enter one in
answer to one of Mangler's prompts. Here's an example:
MANGLER FILENAME.DOC FILENAME.001 I^M^MN^J^MN
MANGLER FILENAME.DOC #13I#13#13N#10#13n
MANGLER FILENAME.DOC /- #13I#13#13N#10#13
These three strings do exactly the same thing. On the command
line or in a batch file, they tell Mangler to read from MANG-
LER.DOC, and write to MANGLER.001 (automatically generated in the
second and third versions; the extra #13 accepts it), inserting
form-feeds (I) at the default 66 line intervals (^M or #13 for
<Enter>), throughout without extra FF's (^M or #13 to accept the
default), without cleaning the top of the page (N for No) and
without removing any header or footer lines (^J or #10 for <Ctrl-
Enter>), final confirmation (^M or #13) and finally N or n (for
"No" to "Want to run another round?") to stop without running
again. (The 3rd version has no final N, because the "/-" param-
eter takes care of it.)
Another example: to insert FF's at 56 line intervals and clean
(remove blank lines) the top of the page, you could use:
MANGLER FILENAME.DOC FILENAME.001 /- I56^MYY
This line runs MANGLER to read MANGLER.DOC and output MANGLER.001.
/- means no repeats, then we have the string of keystrokes:
I insert FF's
56 every 56 lines
^M <Enter> to accept the default "Throughout"
Y (another ^M would work, too) for "Yes, clean the top"
Y (or ^M) to confirm the selection.
_______MANGLER 2.61 Page 10
In one place, however, there's room for ambiguity, and you'll have
to touch up the string you get from MANGLER.KEZ. When you give
strings to be removed or inserted with DelRep, you might need to
distinguish between an instruction (like <Enter>) and text to be
worked on. Consider this line:
MANGLER FILENAME.TXT FILENAME.001 D#0#0^M#13#10^M^MN
D DelRep "delete/replace"
#0#0^M remove pairs of character #0
>> #13#10^M replace them with ASCII newlines <<== WRONG
^M (or Y) to confirm the selection
N No, don't run again.
That looks right, and it's what MANGLER.KEZ would give you, but it
won't work. Look at the sequence: #13#10^M. #13 and ^M mean the
same thing, the carriage return character. If Mangler reads #13
it will take it for an <Enter> and set up to remove #0#0 without
replacing them (then it will get confused by the subsequent char-
____ acters). To explain to Mangler that it's not to obey these char-
______ acters but rather to insert them, put double quotes around them:
MANGLER FILENAME.TXT FILENAME.001 D#0#0^M"#13#10"^M^MN
One last problem: Suppose you want to insert, not the single char-
acter #13, but the three-character string "#" followed by "1"
followed by "3". To do that, put a backslash (\) in front of the
"#". That will turn it into a literal "#" and Mangler won't take
it for an ASCII number mark. Instead of, say:
MANGLER FILENAME.TXT FILENAME.001 D#0^M"#13"^M^MN
which would replace #0's with carriage returns, use
FILENAME.TXT FILENAME.001 D#0^M"\#13"^M^MN
A Note About Colors:
PrnSet (2.80 and later) has an option to customize its colors.
(From PrnSet's main menu, press F3.) If MANGLER.EXE is on the
default drive & directory when you run PrnSet's color changer, it
will change Mangler's colors to match. The thing to remember is
that what PrnSet calls the "Frame" color is also used by Mangler
for its menu bars. Mangler's uses PrnSet's "Reversed" color for
its cursor bar, that is, the menu bar currently selected.
If you have no appropriate copy of PrnSet, but can use DEBUG or a
disk editor, you can change the bytes directly. Search the file
___________ for the flag, "COLORS:". Immediately after the colon are 4 bytes
specifying the colors, in this order: Normal, Emphasized, Frame,
and Reversed. For a monochrome monitor, I'd suggest (in hex
numbers): 07 0F 07 70 for white-on-black, bright-white-on-black,
white-on-black, black-on-white.
_______MANGLER 2.61 Page 11
Version History:
1.10 adds "Blank Ends" stripping feature. (7/89)
1.20 adds "Split File" and "Insert FF's." (8/89)
.21 repairs bug in "Insert FF's." (8/89)
1.30 More repairs but also: InsFF will now respect FF's instead of re-
moving them. Option to remove blank lines at top as well as
bottom of page. (8/89)
.31 Prevent occasional extra FF at end of InsFF. (9/89)
.32 Repair to line reading procedure: FF is an end-of-line char,
just like LF. (9/89)
.33 CrSwap was converting 1st char of each line to FF. (9/89)
1.40 Add and Strip margin can add/strip after CR's also. Also adds
option to remove non-blank header &/or footer lines. 1.40b in-
sures FF not on end of line, 1.40c fixes bug about how many
footer lines to remove, and 1.40d stops it adding extra LF af-
ter FF. (10/89)
.41 Remove margin & Add margin options can handle tabs by expand-
ing tabs with the proper number of blanks. (12/89)
.42 More complete tab handling. "Blanks" option (formerly called
"LnEnds") can Expand tabs or pack blanks into tabs. At pres-
ent, tabs are set at the standard 8-column intervals. Bug fix
in DelChr character entry. (12/89)
.43 Option to insert extra FF's added, menus reorganized, <Esc> backs
up through menus more smoothly and will now stop execution.
Somewhat less liable to hang on Ctrl-Break. Remove terminal
blanks feature works properly. (2/90)
.44 DelChr option can now create a file without CR's or LF's alto-
gether, not even in the newlines. (6/90)
1.50 Adds "Revrse" option to reverse the order of pages. Also, manu-
factures and suggests an output file name --the input file name
with extension 001 or, if input file extension has a numerical
value, you get the next higher number, 002, 003, etc. (7/90)
.51 Fixes a serious bug in the Reverse option and minor ones in Del-
Chr about removing newline (CR/LF) pairs. (12/90)
1.60 Adds the "+" option to cycle Mangler repeatedly.
.60a Corrects readout for files with more than 32K lines.(8/91)
.60b Asks whether to cycle again. Makes "+" obsolete.
1.70 Adds keyboard stuffing from the command line. Now, Mangler
can run from a batch file without responses from the key-
board. Naturally, this rehabilitates /+ & /-. (10/91)
.71 Can adjust tab width for "Blanks" and "Margins" functions.
2.00 Uses (but not fully) new line handling system which can handle
almost indefinitely long lines (about 30K characters). No
new functions but heavy internal reworking justifies the "2.00"
(it'll have different bugs). Also, CrSwap now ignores all but
the first bare CR in each line. (2/92)
_______MANGLER 2.61 Page 12
2.20 Two important changes: (1) Now uses the new long line handling sys-
tem consistently in all functions. (2) The old "DelChr" func-
tion is replaced by "DelRep", which differs in two respects: it
can handle strings of up to 50 characters), & it can replace
as well as delete. Smaller fixes: (a) Output file has the same
date and time as the original (convenient if you want Pagina to
include the date in its header). (b) Abandons the pretense that
you have to use "Blanks" to remove blank line-ends (for some
time, Mangler's been doing it automatically). Now, it's renamed
"Tabs" and simplified. Finally: (c) InsFF no longer adds a blank
header line at the top of page. (7/92)
.20a Repairs method of distinguishing commands from text in DelRep
strings. Now uses "double quotes" to indicate text. (8/92)
.20b Repairs fault in /REC function (probably introduced in .20a).
.20c Repair in command line reading and some cosmetic improvements.
2.21 Does 2 things: Fixes bug in Turbo Pascal's reset: balks at non-
text files if they're read-only. Works around by using text
files where possible and changing attribute temporarily if file
must be opened as non-text (but see .21c below) Second, the
Hi-Bit option now offers a choice to preserve character graphics
boxes with "-", "|" etc.
.21a Minor bugfix (confirmation line for DelRep).
.21b Bugfix: SpFile was losing 1st section. (Bug probably introduced
in 2.00 or 2.10.)
.21c Proper way to read read-only files discovered and implemented.
(Internet newsgroups are a wonderful invention.)
.21d Minor fix in Hi-bit graphics boxes. (#128 wasn't being trans-
lated.) Straightened SpFile numbering some more (1/93).
2.30 New function: if asked to replace a string with itself, DelRep
will merely count the occurences of the string in the source
file without creating any output file at all. (2/93)
.30a Stops an otiose newline being tacked onto the last FF. (3/93)
.30b SpFile display keeps you posted on current output file. (3/93)
2.40 New hi-bit function: besides converting graphics line-drawing
characters to ordinary printable ones like "-" and "|", Mangler
can reverse the process and pretty up low-bit boxes and lines.
by substituting high-bit graphics characters. Generally, the
whole hi-bit system is neatened with a moving-bar menu. (4/93)
.40a Bugfix: DelRep replacing 1 char with string was looping. (5/93)
2.50 "Margin" and "Tabs" options also neatened with moving-bar menus.
"Margin" has new functions: add blanks to pad lines to a given
length or strip blanks & tabs from the ends of lines. (6/93)
2.51 /? syntax help screen added. (7/93)
.51a Repaired InsFF "extra" FF insertion. Broken some time in the
last few versions. (8/93)
2.52 Margin Remove/Add can handle more than one CR per line. (12/93)
_______MANGLER 2.61 Page 13
2.53 Can work properly on 43 & 50 line screens. (7/94)
2.60 New: can soften "hard" ASCII returns for word-processors. (7/94)
.61 Fixed: DelRep ignores lines; doesn't insert its own line-ends,
Now correctly changes and removes CR &/or LF. (11/94)
About Updates
Updates to my programs appear irregularly and sometimes frequent-
ly, as bugs and suggestions are brought to my attention. Since I
make no charge for these things, I can't afford to send updates
everywhere. One place I do try to keep up to date is Nelson
Ford's "Public (software) Library":
The Public (software) Library
P.O. Box 35705
Houston, TX 77235-5705
Since the PsL is prompt both in updating their material and in
filling their orders, they're one place where you can be sure of
getting my latest efforts. It is not unethical to take my pro-
__ grams off a PsL disk and package them yourself. (It is unethical
and probably illegal to copy the whole PsL disk including other
programs and the PsL's own explanatory files and programs.)
Of course, people who send me suggestions and bug reports are
liable to be sent a copy of the fix (if I can make one). They're
also liable to be drafted into my Beta Testing Division.
R. N. Wisan, December, 1994
37 Clinton St., Oneonta, NY 13820
internet: wisanr@hartwick.edu